设备树文件说明

Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.


概述

本文档介绍Quectel Pi H1的设备树文件结构、位置和修改方法。设备树(Device Tree)是Linux内核用于描述硬件配置的数据结构。掌握设备树文件的组织结构对于内核开发至关重要。

顶层设备树

Quectel Pi H1的顶层设备树文件为 qcs6490-idp-pi.dts,可以在以下两个位置找到:

  • 推荐修改位置(内核代码外,方便覆盖):

src/qcom-6.6-overlay/arch/arm64/boot/dts/qcom/qcs6490-idp-pi.dts
  • 内核源码内位置

sources/quectel-src/kernel/qcom-6.6/arch/arm64/boot/dts/qcom/qcs6490-idp-pi.dts

建议:对设备树的所有修改,推荐在 src/qcom-6.6-overlay 目录下的文件上进行。

常用设备树文件

sc7280.dtsi

在开发过程中,sc7280.dtsi 文件会被高频查看和使用。该文件包含了以下常用节点:

  • GPIO(通用输入输出)

  • SPI(串行外设接口)

  • I2C(I²C总线)

  • UART(串口)

  • CPU(处理器)

  • GPU(图形处理器)

文件路径

sources/quectel-src/kernel/qcom-6.6/arch/arm64/boot/dts/qcom/sc7280.dtsi

外部设备树仓库

高通平台将显示、图形、摄像头、视频等相关的驱动和设备树从Linux内核源码中分离出来,形成独立的代码仓库。

查看仓库信息

可根据 镜像构建 下载Yocto工程源码,通过查看 layers/meta-qcom-hwe 目录下的 .bb 文件获取具体的代码仓库信息。

示例:查看摄像头设备树仓库

打开文件 layers/meta-qcom-hwe/recipes-multimedia/cameradtb/cameradtb_1.0.bb,可以看到:

SRCPROJECT = "git://git.codelinaro.org/clo/le/platform/vendor/opensource/camera-devicetree.git;protocol=https"
SRCBRANCH  = "camera-kernel.qclinux.1.0.r1-rel"
SRCREV     = "08511ff747916576232cc26394bb9c5c6e0ab1f5"

信息说明

本地设备树子仓库位置

为了便于编译和使用,Quectel Pi H1将这些独立的设备树子仓库放置在 src/devicetree 目录下:

模块

路径

摄像头

src/devicetree/camera-devicetree

显示

src/devicetree/display-devicetree

图形

src/devicetree/graphics-devicetree

视频

src/devicetree/video-devicetree

各模块设备树详细说明

Camera(摄像头)

设备树文件

  • Camera主配置

src/devicetree/camera-devicetree/qcm6490-camera-rb3.dtsi
  • Camera传感器配置

src/devicetree/camera-devicetree/qcm6490-camera-sensor-rb3.dtsi

相关配方文件

  • 基础配方

layers/meta-qcom-hwe/recipes-multimedia/cameradtb/cameradtb_1.0.bb
  • 扩展配方

layers/meta-quectel/recipes-multimedia/cameradtb/cameradtb_1.0.bbappend

Display(显示)

设备树文件

  • 8寸屏配置

src/devicetree/display-devicetree/display/dsi-panel-waveshare-8inch-video.dtsi
  • SDE Display主配置

src/devicetree/display-devicetree/display/qcm6490-sde-display-pi.dtsi
  • SDE Display引脚配置

src/devicetree/display-devicetree/display/qcm6490-sde-display-pinctrl.dtsi
  • SDE Display通用配置

src/devicetree/display-devicetree/display/qcm6490-sde-display.dtsi
  • 顶层设备树引用

src/qcom-6.6-overlay/arch/arm64/boot/dts/qcom/qcs6490-idp-pi.dts

相关配方文件

  • 基础配方

layers/meta-qcom-hwe/recipes-multimedia/display/qcom-displaydevicetree_git.bb
  • 扩展配方

layers/meta-quectel/recipes-multimedia/display/qcom-displaydevicetree_git.bbappend

Graphics(图形)

设备树文件

  • GPU配置

src/devicetree/graphics-devicetree/gpu/qcm6490-graphics.dtsi

相关配方文件

  • 基础配方

layers/meta-qcom-hwe/recipes-graphics/graphicsdevicetree/qcom-graphicsdevicetree_git.bb
  • 扩展配方

layers/meta-quectel/recipes-graphics/graphicsdevicetree/qcom-graphicsdevicetree_git.bbappend

Video(视频)

设备树文件

  • Video配置

src/devicetree/video-devicetree/qcm6490-video.dtsi

相关配方文件

  • 基础配方

layers/meta-qcom-hwe/recipes-multimedia/video/qcom-videodtb_1.0.bb
  • 扩展配方

layers/meta-quectel/recipes-multimedia/video/qcom-videodtb_1.0.bbappend

修改建议

  1. 优先修改覆盖层:修改设备树时,优先在 src/qcom-6.6-overlaysrc/devicetree 目录下的文件上进行,避免直接修改内核源码。

  2. 了解依赖关系:修改设备树前,建议先了解各个 .dtsi 文件之间的引用关系。

  3. 配方文件同步:如果修改了设备树仓库或添加了新的设备树文件,需要同步更新对应的 .bb.bbappend 文件。

  4. 版本控制:建议使用Git管理所有修改,便于追踪和回滚。